/* 
 * File:   Dot.cpp
 * Author: mauro
 * 
 * Created on 10 de septiembre de 2014, 18:00
 */

#include <Box2D/Common/b2Math.h>

#include "Dot.h"

const int SCREEN_WIDTH = 800; //tomar el tamaño de pantalla (ancho) del JSON
const int SCREEN_HEIGHT = 600; //tomar el tamaño de pantalla (alto) del JSON

//constructor para un punto

Dot::Dot(float x, float y) {
    b2Vec2 *pos = new b2Vec2(x, y);
    this->pos = pos;
    this->size = NULL;
}

Dot::~Dot() {
    delete this->pos;
    if (this->size != NULL)
        delete this->size;
//    printf("Destructor de Dot\n");
}

//constructor para un punto + forma.

Dot::Dot(float x, float y, float w, float h) {
    this->w = w;
    this->h = h;
    b2Vec2 *pos = new b2Vec2(x, y);
    this->pos = pos;
    b2Vec2 *size = new b2Vec2(w, h);
    this->size = size;
}

void Dot::setPos(float x, float y) {
    this->pos->Set(x, y);
}

b2Vec2* Dot::getPos() {
    return this->pos;
}

void Dot::setSize(float w, float h) {
    this->size->Set(w, h);
}

b2Vec2* Dot::getSize() {
    return this->size;
}

b2Vec2* Dot::sizeDotWorldToPixels() {
    this->setSize(this->w, this->h);
    return this->size;
}
//cambio de escala el tamaño del elemento, antes de enviar al mundo.

b2Vec2* Dot::sizeDotPixelsToWorld() {
    float w = (this->w / 2)*0.01;
    float h = (this->h / 2)*0.01;
    this->setSize(w, h);
    return this->size;
}


//cambio de escala antes de enviar a SDL.

b2Vec2* Dot::dotWorldToPixels() {
    
    float x = (this->pos->x * 100);
    float y = (this->pos->y * 100);
//    float x = (this->pos->x * 100);
//    float y = (this->pos->y * 100);
    this->setPos(x, y);
    return this->pos;
}
//cambio de escala antes de enviar al WORLD.

b2Vec2* Dot::dotPixelsToWorld() {
    float x = (this->pos->x * 0.01);
    float y = (this->pos->y * 0.01);
    this->setPos(x, y);
    return this->pos;
}

